home *** CD-ROM | disk | FTP | other *** search
- TTL 'MACROS.CLI'
-
- NOLIST
-
- ;
- ; A_line Macros
- ;
-
- aline_init MACRO
- DC.W $A000 ;aline_init
- ENDM
-
- show_mouse MACRO
- DC.W $A009 ;show_mouse
- ENDM
-
- hide_mouse MACRO
- DC.W $A00A ;hide_mouse
- ENDM
-
- ;
- ; Aline Array Equates
- ;
-
- CONTRL EQU 4 ;contrl array pointer
- INTIN EQU 8 ;intin array pointer
-
-
- ;
- ; AES Application functions
- ;
-
- ;
- ; initialize application
- ;
- ; appl_init
- ;
- appl_init MACRO
- CLR.L ap1resv
- CLR.L ap2resv
- CLR.L ap3resv
- CLR.L ap4resv
- MOVE.W #10,opcode
- CLR.W sintin
- MOVE.W #1,sintout
- CLR.W saddrin
- CLR.W saddrout
- MOVE.L #aespb,D1
- MOVE.W #$C8,D0
- TRAP #2
- ENDM
-
- ;
- ; add a desktop accessory to the list of available accessories
- ;
- ; menu_register accessory_id, name_address
- ;
- menu_register MACRO
- MOVE.W #35,contrl
- MOVE.W #1,contrl+2
- MOVE.W #1,contrl+4
- MOVE.W #1,contrl+6
- CLR.W contrl+8
- MOVE.W \1,intin
- MOVE.L \2,addrin
- MOVE.L #aespb,D1
- MOVE.W #$C8,D0
- TRAP #2
- ENDM
-
- ;
- ; wait until a message is present in the message pipe
- ;
- ; evnt_mesag buffer_address
- ;
- evnt_mesag MACRO
- MOVE.W #23,contrl
- CLR.W contrl+2
- MOVE.W #1,contrl+4
- MOVE.W #1,contrl+6
- CLR.W contrl+8
- MOVE.L \1,addrin
- MOVE.L #aespb,D1
- MOVE.W #$C8,D0
- TRAP #2
- ENDM
-
- ;
- ; display a warning message
- ;
- ; form_alert default_button, string_address
- ;
- form_alert MACRO
- MOVE.W #52,contrl
- MOVE.W #1,contrl+2
- MOVE.W #1,contrl+4
- MOVE.W #1,contrl+6
- CLR.W contrl+8
- MOVE.W \1,intin
- MOVE.L \2,addrin
- MOVE.L #aespb,D1
- MOVE.W #$C8,D0
- TRAP #2
- ENDM
-
- ;
- ; GEMDOS functions
- ;
-
- ;
- ; get a character from the keyboard. character is returned in D0.L
- ;
- ; conin
- ;
- conin MACRO
- MOVE.W #$01,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; output a character to the screen
- ;
- ; conout character
- ;
- conout MACRO
- MOVE.W \1,-(SP)
- MOVE.W #$02,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #4,SP
- ENDM
-
- ;
- ; read a character from the keyboard, no screen echo. char is in D0.L
- ;
- ; coninwoe
- ;
- coninwoe MACRO
- MOVE.W #$07,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; check keyboard status. D0.W = 0 ⇨ no keystrokes are buffered
- ;
- ; constat
- ;
- constat MACRO
- MOVE.W #$0B,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; set the default drive. D0.W contains old default drive number (0 or 1)
- ;
- ; setdrv drive_number
- ;
- setdrv MACRO
- MOVE.W \1,-(SP)
- MOVE.W #$0E,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #4,SP
- ENDM
-
- ;
- ; get the current default drive number. D0.W returns drive number (0 or 1)
- ;
- ; getdrv
- ;
- getdrv MACRO
- MOVE.W #$19,-(SP) ;get default drive
- TRAP #1 ;GEMDOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; get the system date. D0.W = YYYYYYYMMMMDDDDD
- ;
- ; getdate
- ;
- getdate MACRO
- MOVE.W #$2A,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; get the system time. D0.W = HHHHHMMMMMMSSSSS
- ;
- ; gettime
- ;
- gettime MACRO
- MOVE.W #$2C,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; get the disk transfer address. D0.L = address of the dta buffer
- ;
- ; getdta
- ;
- getdta MACRO
- MOVE.W #$2F,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; get the free space on a disk
- ;
- ; freespace buffer_address, drive_code(0-2)
- ;
- freespace MACRO
- MOVE.W \2,-(SP)
- MOVE.L \1,-(SP)
- MOVE.W #$36,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #8,SP
- ENDM
-
- ;
- ; create a directory or folder. D0.L < 0 ⇨ error occurred
- ;
- ; mkdir path_address
- ;
- mkdir MACRO
- MOVE.L \1,-(SP)
- MOVE.W #$39,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #6,SP
- ENDM
-
- ;
- ; delete a directory or folder. D0.L < 0 ⇨ error occurred
- ;
- ; rmdir path_address
- ;
- rmdir MACRO
- MOVE.L \1,-(SP)
- MOVE.W #$3A,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #6,SP
- ENDM
-
- ;
- ; set the default path. D0.L < 0 ⇨ error occurred
- ;
- ; chdir path_address
- ;
- chdir MACRO
- MOVE.L \1,-(SP)
- MOVE.W #$3B,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #6,SP
- ENDM
-
- ;
- ; create and open file. D0.L < 0 ⇨ error occurred, else D0.L = handle
- ;
- ; create path_address, file_attribute
- ;
- create MACRO
- MOVE.W \2,-(SP)
- MOVE.L \1,-(SP)
- MOVE.W #$3C,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #8,SP
- ENDM
-
- ;
- ; open file. D0.L < 0 ⇨ error occurred, else D0.L = handle
- ;
- ; open path_address, mode_word
- ;
- open MACRO
- MOVE.W \2,-(SP)
- MOVE.L \1,-(SP)
- MOVE.W #$3D,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #8,SP
- ENDM
-
- ;
- ; read from file. D0.L < 0 ⇨ error occurred, else D0.L = # of bytes read
- ;
- ; read handle, #_bytes, buffer_address
- ;
- read MACRO
- MOVE.L \3,-(SP)
- MOVE.L \2,-(SP)
- MOVE.W \1,-(SP)
- MOVE.W #$3F,-(SP)
- TRAP #1 ;GEMDOS
- LEA 12(SP),SP
- ENDM
-
- ;
- ; write to file. D0.L < 0 ⇨ error occurred, else D0.L = # of bytes written
- ;
- ; write handle, #_bytes, buffer_address
- ;
- write MACRO
- MOVE.L \3,-(SP)
- MOVE.L \2,-(SP)
- MOVE.W \1,-(SP)
- MOVE.W #$40,-(SP)
- TRAP #1 ;GEMDOS
- LEA 12(SP),SP
- ENDM
-
- ;
- ; delete file. D0.L < 0 ⇨ error occurred, else D0.L = 0
- ;
- ; unlink path_address
- ;
- unlink MACRO
- MOVE.L \1,-(SP)
- MOVE.W #$41,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #6,SP
- ENDM
-
- ;
- ; change file attributes. D0.L < 0 ⇨ error, else D0.W = file attributes
- ;
- ; chmod path_address, get\set_code, attribute_word
- ;
- chmod MACRO
- MOVE.W \3,-(SP)
- MOVE.W \2,-(SP)
- MOVE.L \1,-(SP)
- MOVE.W #$43,-(SP)
- TRAP #1 ;GEMDOS
- LEA 10(SP),SP
- ENDM
-
- ;
- ; get the current path. D0.L < 0 ⇨ error occurred, else D0.L = 0
- ;
- ; getdir path_buffer, drive_code(0-2)
- getdir MACRO
- MOVE.W \2,-(SP)
- MOVE.L \1,-(SP)
- MOVE.W #$47,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #8,SP
- ENDM
-
- ;
- ; allocate memory. D0.L < 0 ⇨ error occurred, else D0.L = memory address
- ; if #_bytes = -1, then D0.L = total # of bytes available
- ;
- ; malloc #_bytes
- ;
- malloc MACRO
- MOVE.L \1,-(SP)
- MOVE.W #$48,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #6,SP
- ENDM
-
- ;
- ; deallocate memory. D0.L < 0 ⇨ error occurred, else D0.L = 0
- ;
- ; mfree memory_address
- ;
- mfree MACRO
- MOVE.L \1,-(SP)
- MOVE.W #$49,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #6,SP
- ENDM
-
- ;
- ; spawn a process. D0.L < 0 ⇨ error occurred, else D0.L = base page address
- ;
- ; exec mode_word, path_address, command_address, env_address
- ;
- exec MACRO
- MOVE.L \4,-(SP)
- MOVE.L \3,-(SP)
- MOVE.L \2,-(SP)
- MOVE.W \1,-(SP)
- MOVE.W #$4B,-(SP)
- TRAP #1 ;GEMDOS
- LEA 16(SP),SP
- ENDM
-
- ;
- ; search a directory for a file, with wildcards. D0.W = 0 ⇨ file found
- ;
- ; sfirst path_address, attribute_word
- ;
- sfirst MACRO
- MOVE.W \2,-(SP)
- MOVE.L \1,-(SP)
- MOVE.W #$4E,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #8,SP
- ENDM
-
- ;
- ; determine if there are any other files which match the template given
- ; by the sfirst call. D0.W = 0 ⇨ file found
- ;
- ; snext
- ;
- snext MACRO
- MOVE.W #$4F,-(SP)
- TRAP #1 ;GEMDOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; rename file. D0.L < 0 ⇨ error occurred, else D0.L = 0
- ;
- ; rename old_path_address, new_path_address
- ;
- rename MACRO
- MOVE.L \2,-(SP)
- MOVE.L \1,-(SP)
- CLR.W -(SP)
- MOVE.W #$56,-(SP)
- TRAP #1 ;GEMDOS
- LEA 12(SP),SP
- ENDM
-
- ;
- ; BIOS functions
- ;
-
- ;
- ; determine if a disk has been swapped. D0.L = status of disk(0-2)
- ;
- ; mediach drive_number(0 or 1)
- ;
- mediach MACRO
- MOVE.W \1,-(SP)
- MOVE.W #9,-(SP)
- TRAP #13 ;BIOS
- ADDQ.L #4,SP
- ENDM
-
- ;
- ; get a map of available drives. D0.L = bit map of drives (two assumed)
- ;
- ; drvmap
- ;
- drvmap MACRO
- MOVE.W #10,-(SP)
- TRAP #13 ;BIOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; XBIOS functions
- ;
-
- ;
- ; get address of the physical screen RAM. D0.L = screen address
- ;
- ; physbase
- ;
- physbase MACRO
- MOVE.W #2,-(SP)
- TRAP #14 ;EXTENDED BIOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; get address of the logical screen RAM. D0.L = screen address
- ;
- ; logbase
- ;
- logbase MACRO
- MOVE.W #3,-(SP)
- TRAP #14 ;EXTENDED BIOS
- ADDQ.L #2,SP
- ENDM
-
- ;
- ; set screen parameters
- ;
- ; setscreen logbase, physbase, resolution
- ;
- setscreen MACRO
- MOVE.W \3,-(SP)
- MOVE.L \2,-(SP)
- MOVE.L \1,-(SP)
- MOVE.W #5,-(SP)
- TRAP #14 ;EXTENDED BIOS
- LEA 12(SP),SP
- ENDM
-
- ;
- ; write a disk sector. D0.L < 0 ⇨ error occurred, else D0.L = 0
- ;
- ; flopwr buf_addr, disk_#, sector_#, track_#, side_#, #_sectors
- ;
- flopwr MACRO
- MOVE.W \6,-(SP)
- MOVE.W \5,-(SP)
- MOVE.W \4,-(SP)
- MOVE.W \3,-(SP)
- MOVE.W \2,-(SP)
- CLR.L -(SP)
- MOVE.L \1,-(SP)
- MOVE.W #9,-(SP)
- TRAP #14 ;EXTENDED BIOS
- LEA 20(SP),SP
- ENDM
-
- ;
- ; format disk. D0.L < 0 ⇨ error occurred, else D0.L = 0
- ;
- ; flopfmt buf_adr, dsk_#, #_scts\trck, trck_#, sde_#, interleave
- ;
- flopfmt MACRO
- MOVE.W #$E5E5,-(SP) ;virgin sector data
- MOVE.L #$87654321,-(SP) ;magic number
- MOVE.W \6,-(SP)
- MOVE.W \5,-(SP)
- MOVE.W \4,-(SP)
- MOVE.W \3,-(SP)
- MOVE.W \2,-(SP)
- CLR.L -(SP)
- MOVE.L \1,-(SP)
- MOVE.W #10,-(SP)
- TRAP #14 ;EXTENDED BIOS
- LEA 26(SP),SP
- ENDM
-
- ;
- ; produce a disk boot sector
- ;
- ; protobt buffer_address, serial_number, disk_info, execute_flag
- ;
- protobt MACRO
- MOVE.W \4,-(SP)
- MOVE.W \3,-(SP)
- MOVE.L \2,-(SP)
- MOVE.L \1,-(SP)
- MOVE.W #18,-(SP)
- TRAP #14 ;EXTENDED BIOS
- LEA 14(SP),SP
- ENDM
-
- ;
- ; set the cursor configuration
- ;
- ; cursconf function, blink_rate
- ;
- cursconf MACRO
- MOVE.W \2,-(SP)
- MOVE.W \1,-(SP)
- MOVE.W #21,-(SP)
- TRAP #14 ;EXTENDED BIOS
- ADDQ.L #6,SP
- ENDM
-
- LIST
-